//通过Event对象来实现事件的监听与发射,window.Event不要乱赋值,这里仅作demo演示
window.Event = new Vue();


Vue.component('coupon', {

    //vue语法需要在一个可识别的root node里面执行,所以需要包一层 div
    template: `
        
         <input placeholder="请输入代金券" @blur="onCouponApplied">  </input>
        
        `,

    methods: {

        onCouponApplied() {
            //通过event对象发射事件
            Event.$emit('applied');

            /*
            //事件监听
            this.$on('applied', function(){

            });
            */
            //this.$emit('applied',this.coupon); //带参数

        }

    }


});



new Vue({

    el: '#root',

    data: {
        couponIsUsed: false
    },



//一旦创建就监听事件
    created() {

        //监听applied事件
        Event.$on('applied',  () => {
            alert('啊哈哈哈哈');
            this.couponIsUsed = true;
        })
    }

});